-- CALC_WEB_3RD_COMPENSATE_GEM

-- 计算网页第三方充值补偿的钻石数量
-- @param goodsId    商品ID
-- @param payChannel  支付平台
-- @param currency    支付货币
-- @param payPrice       支付金额
return function(goodsId, payChannel, currency, payPrice)
    -- 获取商品原价
    local origPriceInfo = FormulaM.invoke("WEB_3RD_GOODS_PRICE", goodsId, payChannel);
    if type(origPriceInfo) ~= "table" or #origPriceInfo == 0 then
        -- 获取不到原价
        return 0;
    end

    -- price 除以 100 才是真正的价格
    payPrice =  math.floor(payPrice / 100);

    local origPrice = origPriceInfo[2];
    local balance = payPrice - origPrice;
    if balance <= 0 then
        -- 没有余额，不需要补偿
        return 0;
    end

    local rate = FormulaM.invoke("CURRENCY_TO_GEM_RATE", currency);
    local val = math.modf(rate * balance);

    return val;
end

